
setTimeout(function () {
    console.log(1);
}, 10)

new Promise(function (resolve) {
    console.log(2);
    resolve()
    console.log(3);
}).then(function () {
    console.log(4);
    new Promise((resolve, reject) => {
        console.log(5)
        setTimeout(() => {
            console.log(6);
        }, 100)
    })
})

console.log(7);
console.log(8);

/* var res = [1, 2, 3, 4].pop(1)
console.log(res instanceof Array); */

function foo(something) {
    this.a = something
}
var obj1 = {}
var bar = foo.bind(obj1)
bar(2)
console.log(obj1.a);
var baz = new foo(3)
console.log(obj1.a);
console.log(baz.a);